{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# There is a pytorch edition of GAN\n",
    "# Version: 1.0\n",
    "# Date: 2017-07-21\n",
    "# Place: BIBDR DeepLearning Lab\n",
    "# Author: Jiahao Yao\n",
    "# Acknowledage: Shenjian Zhao\n",
    "# Please use the Python 2 with seaborn, pandas, pytorch\n",
    "import numpy as np\n",
    "%matplotlib inline\n",
    "\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas\n",
    "from scipy import stats, integrate\n",
    "import seaborn as sns\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "from torch.autograd import Variable\n",
    "import torchvision.datasets as dsets\n",
    "import torchvision.transforms as transforms\n",
    "sns.set(color_codes = True)\n",
    "np.random.seed(sum(map(ord, 'distributions')))\n",
    "\n",
    "mu = 4\n",
    "sigma = 2\n",
    "\n",
    "batch_size = 128\n",
    "data_dim = 1 \n",
    "mid_dim = 6\n",
    "sample_dim  = 20\n",
    "\n",
    "GPU = True"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def plot_states(D, G):\n",
    "    f,ax=plt.subplots(1)\n",
    "    n = 50\n",
    "    n_dist = Variable(torch.randn(1000)*sigma+mu)\n",
    "    n_dist = torch.unsqueeze(n_dist,1)\n",
    "    u_dist = torch.rand(1000, sample_dim)*sigma*2-sigma\n",
    "    u_dist = Variable(u_dist)\n",
    "    if GPU:\n",
    "        n_dist = n_dist.cuda()\n",
    "        u_dist = u_dist.cuda()\n",
    "        \n",
    "    gn_dist = G(u_dist)\n",
    "    if GPU:\n",
    "        sns.kdeplot(np.squeeze(n_dist.data.cpu().numpy()),ax=ax,label = 'p_data')\n",
    "    #     There might be an error here, because the model does not know how to plot if all number are the same\n",
    "        sns.kdeplot(np.squeeze(gn_dist.data.cpu().numpy()),ax=ax,label = 'p_g')\n",
    "    else:\n",
    "        sns.kdeplot(np.squeeze(n_dist.data.numpy()),ax=ax,label = 'p_data')\n",
    "        sns.kdeplot(np.squeeze(gn_dist.data.numpy()),ax=ax,label = 'p_g')\n",
    "    \n",
    "    plt.ylim(0,0.9)\n",
    "    dx = []\n",
    "    xx = []\n",
    "    for i in np.arange(mu-sigma*4, mu+sigma*4, 0.5):\n",
    "\n",
    "        tmp_m = 1000\n",
    "        n_dist = Variable(torch.randn(1000)+i)\n",
    "        if GPU:\n",
    "            n_dist = n_dist.cuda()\n",
    "        n_dist = torch.unsqueeze(n_dist,1)\n",
    "        D_value = D(n_dist)\n",
    "        tmp_d = D_value.data.sum()\n",
    "        dx.append(tmp_d / tmp_m)\n",
    "        xx.append(i)\n",
    "    ax.plot(xx, dx, label='d', marker='*')\n",
    "    plt.legend()\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "discriminator = nn.Sequential(\n",
    "    nn.Linear(data_dim, mid_dim),\n",
    "    nn.ReLU(),\n",
    "    nn.Linear(mid_dim,mid_dim),\n",
    "    nn.ReLU(),\n",
    "    nn.Linear(mid_dim,1),\n",
    "    nn.Sigmoid()\n",
    ")\n",
    "\n",
    "generator = nn.Sequential(\n",
    "    nn.Linear(sample_dim, mid_dim),\n",
    "    nn.ReLU(),\n",
    "    nn.Linear(mid_dim,mid_dim),\n",
    "    nn.ReLU(),\n",
    "    nn.Linear(mid_dim,data_dim),\n",
    "    nn.ReLU()    \n",
    ")\n",
    "if GPU:\n",
    "    discriminator = discriminator.cuda()\n",
    "    generator = generator.cuda()\n",
    "    \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def reset_grad():\n",
    "    for p in generator.parameters():\n",
    "        p.grad.data.zero_()\n",
    "    for p in discriminator.parameters():\n",
    "        p.grad.data.zero_()\n",
    "\n",
    "G_solver = torch.optim.Adam(generator.parameters(), lr= 1e-4)\n",
    "D_solver = torch.optim.Adam(discriminator.parameters(), lr= 1e-4)\n",
    "ones_label = Variable(torch.ones(batch_size))\n",
    "zeros_label = Variable(torch.zeros(batch_size))\n",
    "ones_label = torch.unsqueeze(ones_label,1)\n",
    "zeros_label = torch.unsqueeze(zeros_label,1)\n",
    "if GPU:\n",
    "    ones_label = ones_label.cuda()\n",
    "    zeros_label = zeros_label.cuda()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iter-0;D_loss:[ 1.49199963];G_loss:[ 0.79933178]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAD8CAYAAACINTRsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VOXd9/HPrNmXSZjMBEgCmLAmsogKFUkNYoCAgGDr\nLVo3iretircobi3tQ6vWVm9Ln/ZRKQoudWMTIbgGNYqoqGjY90ACyZB9m2T2549JBmKWCVmYyeT3\nfr14Mcs15/xmCN+cuc51XUfhcrlcCCGECAhKXxcghBCi+0ioCyFEAJFQF0KIACKhLoQQAURCXQgh\nAoiEuhBCBJAOhXpubi6ZmZlMnTqVlStXtnj+1KlT3HLLLcyaNYubb76Z4uLibi9UCCGEd15D3eFw\nsHz5clatWkV2djZbtmzhyJEjzdo89dRTzJkzh82bN/Ob3/yGZ555pscKFkII0TavoZ6Xl0dSUhIJ\nCQlotVqysrLIyclp1ubo0aNMmDABgAkTJrR4XgghxIXhNdRNJhNGo9Fz32AwYDKZmrUZPnw4H374\nIQAfffQRdXV1VFRUtLtdu93RmXpFF5TWlfOLt+7in1+t8XUpQogeou6OjSxdupQ//elPbNy4kfHj\nx2MwGFCpVO2+pqLC3KV96vURlJTUdGkbPcVfaytvqAWgwWLzy/r89XNr4s/1SW2d0xtr0+sj2n2d\n11A3GAzNTnyaTCYMBkOLNv/85z8BqKur48MPPyQyMrJDhQshhOg+Xrtf0tLSyM/Pp6CgAKvVSnZ2\nNhkZGc3alJeX43Q6AVi5ciXz5s3rmWqFEEK0y2uoq9Vqli1bxsKFC5kxYwbTp08nJSWFFStWeE6I\nfvPNN0ybNo3MzExKS0u56667erxwIYQQLXWoTz09PZ309PRmjy1evNhze9q0aUybNq17KxNCCHHe\nZEapEEIEEAl1IYQIIBLqQggRQCTUhRAigEio90FyVVohApeEeh+iQOHrEoQION9//y1Ll97XbpvD\nhw+yY8cXF6QeCXUhhOhhhw8fYseO7RdkX92y9osQQnSXt7cdYeeBM926zUuHx/GLjOR22xQVnWbJ\nknsYNmwEhw4dYPDgIfzud8sJDg5u0farr77kH/94huDgYC6+eIzn8X379rBixTNYrRaCgoJ59NFl\nxMcPYNWq57FaLeTl/cjNN99KfHz/Fu0SEwd1y3uVI3UhhGh08uQJ5s6dz3/+s47Q0DA2bFjboo3F\nYuGvf32cp556lhdffI2ysjLPc0lJg/jXv/7N6tWvc8cdd/LCC/9Co9GwcOF/k5ExlTVrXmfKlGta\nbddd5EhdCOFXfpGR7PWouqfExRk8R96ZmTNYt+5N4OZmbU6ezCc+vj8JCYmN7abz7rsbAaitreXP\nf/4jhYUnUSgU2O32VvfT0XadIUfqQgjRSKH46WCC8xtcsGrV84wbN55XX32bp556FqvV2qV2nSGh\nLoQQjUymYvbsyQPgo4/eb9Zf3iQxcRBFRac5daqwsd0Hnudqa2vR6/UAbN262fN4aGgoZrPZa7vu\nIKEuhBCNEhOT2LBhLQsWzKemppq5c+e3aBMUFMTSpY/x4IOLuf32Beh0MZ7nFiz4Fc8//y9uu+1G\nHI6zV3cbN248+fnHufXWG8nJ+bDNdt1B+tT7JJl9JERrVCoVy5b9yWu7CRN+xoQJP2vxeGrqxbz5\n5gbP/UWLfgNAZGQUq1a90qxta+26gxypCyFEAOnQkXpubi6PP/44TqeT66+/nkWLFjV7/vTp0zz0\n0EPU1NTgcDh44IEHWqy/LoQQ/iw+vj+vvvp2s8ceeeQBiopON3vsrrvu4fLLJ17I0s6L11B3OBws\nX76c1atXYzAYmD9/PhkZGSQnnx1y9NxzzzF9+nRuvPFGjhw5wqJFi9i2bVuPFi6EED3tySef9nUJ\n581r90teXh5JSUkkJCSg1WrJysryXMauiUKhoLbWfaX6mpoa4uLieqZaIYQQ7fJ6pG4ymTAajZ77\nBoOBvLy8Zm3uvvtu7rjjDl577TXq6+tZvXp191cqhBDCq24Z/ZKdnc3cuXO5/fbb2bVrF0uXLmXL\nli0olW1/EdDpQlGrVV3ar14f0aXX9yR/rE1pds9aCwrW+GV94J+f27n8uT6prXMCrTavoW4wGCgu\nLvbcN5lMGAyGZm3WrVvHqlWrABg7diwWi4WKigpiY2Pb3G5FhbnN5zpCr4+gpKSmS9voKf5aW0WD\nu4vM0mDzy/r89XNr4s/1SW2d0xtr8xb0XvvU09LSyM/Pp6CgAKvVSnZ2NhkZGc3axMfHs2PHDgCO\nHj2KxWIhJiamtc0JP+CScepCBCyvR+pqtZply5axcOFCHA4H8+bNIyUlhRUrVpCamsqUKVN4+OGH\n+d3vfseaNWtQKBT85S9/aWUNBeFr8m8iRODrUJ96enp6i3Hnixcv9txOTk7mzTff7N7KhBB90oYj\nW9h1Zne3bnNsXBrXJc9st835rKe+Y8cX/N//+yzBwSFcfPFoTp8+xV//+vdurbmzZEapEEI06uh6\n6n/725M8/fQ/eOml16ioqPBBpW2TtV+EEH7luuSZXo+qe0pH11Pv338A/fsPAGDq1EzPeur+QI7U\nhRCiUVfXU/cHEupCCNGoY+upJ3H69CnPmjA5OR9d0Bq9ke4XIYRo1LSe+pNPLmfQoMFtrKcezP33\nP8SSJfcQHBzCiBEjfVBp2yTUhRCiUUfXUx83bjyvv74el8vFM888xfDhIy5AdR0joS6EEOdp8+aN\nvPdeNna7jZSUYcyePc/XJXlIqAshBOe3nvovf7mAX/5ywYUsr8Mk1IUQog0BuZ66EEKI3kNCXQgh\nAoiEuhBCBBAJdSGEaMWLL77A66+/6usyzpuEuhCiVzIf2I/5wH5fl+F3ZPSLEKJXKnv3HQBCu3Hi\nz8svv8h772Wj0+mIizMwbJj/TCrqKAl1IYRfKVn7JjXf7mzzeafNhtNsBrv7mruH/nshytBQlBpN\nm6+JGH8p+utvaHe/Bw7sJyfnQ9aseR2Hw87tt98UuKGem5vL448/jtPp5Prrr2fRokXNnn/iiSf4\n+uuvAWhoaKCsrIxvv/22+6sVQvR5So0GRVgYjqoqAFRhYSjUXT8+zcvbxeTJV3kuijFp0uQub9MX\nvH4SDoeD5cuXs3r1agwGA/PnzycjI4Pk5GRPm0cffdRz+9VXX2Xfvn09U63oFi6XXKNU+C/99Td4\nPaou3XR2/XKFQkHstXN6uqxew+uJ0ry8PJKSkkhISECr1ZKVlUVOTk6b7bOzs5k50zcL3Iv2KXrh\n2tBCtCZowAD6zZ5Lv9lz0fbv3y3bHD16HJ9//ikWSwNmcx3bt3/eLdu90LweqZtMJoxGo+e+wWAg\nLy+v1banTp2isLCQCRMmeN2xTheKWq06j1Jb0usjuvT6nuSPtanrnQAEBWv8sj7wz8/tXP5cX1+q\nTT99Squ3O7Wtxtr0+kuZNWsmd9xxEzExMYwZM5rw8CCffq6d2Xe3nijNzs4mMzMTlcp7WFdUmLu0\nL70+gpKSmi5to6f4a21VlloALA02v6zPXz+3Jv5cn9TWOT+tbf78m5g//6ZmbXxVe1ufm7eg99r9\nYjAYKC4u9tw3mUwYDIZW227dupWsrCxvmxRCCNFDvIZ6Wloa+fn5FBQUYLVayc7OJiMjo0W7o0eP\nUl1dzdixY3ukUCGEEN557X5Rq9UsW7aMhQsX4nA4mDdvHikpKaxYsYLU1FSmTHH3Z23dupUZM2a0\ncuFWIYQQF0qH+tTT09NJT09v9tjixYub3b/nnnu6ryohhBCdImu/CCFEAJFQF0KIACKhLoQQAURC\nXQghAoiEep8iI5OECHQS6kIIEUAk1IUQIoBIqAshRACRUBdCiAAioS6EEAFEQr0PciFXPhIiUEmo\n9yGy1poQgU9CXQghAoiEuhBCBBAJdSGECCAdCvXc3FwyMzOZOnUqK1eubLVN00UysrKyWLJkSbcW\nKYQQomO8XiTD4XCwfPlyVq9ejcFgYP78+WRkZJCcnOxpk5+fz8qVK3njjTeIioqirKysR4sWQgjR\nOq9H6nl5eSQlJZGQkIBWqyUrK4ucnJxmbd5++20WLFhAVFQUALGxsT1TregWMqBRiMDl9UjdZDJh\nNBo99w0GA3l5ec3a5OfnA3DDDTfgdDq5++67mTx5crvb1elCUatVnSj5LL0+okuv70n+WJu2wR3n\nQUFqv6wP/PNzO5c/1ye1dU6g1daha5R643A4OHHiBK+++irFxcXcdNNNbN68mcjIyDZfU1Fh7tI+\n9foISkpqurSNnuKvtdVY6wCwWOx+WZ+/fm5N/Lk+qa1zemNt3oLea/eLwWCguLjYc99kMmEwGFq0\nycjIQKPRkJCQwKBBgzxH70IIIS4cr6GelpZGfn4+BQUFWK1WsrOzycjIaNbm6quv5ptvvgGgvLyc\n/Px8EhISeqZiIYQQbfLa/aJWq1m2bBkLFy7E4XAwb948UlJSWLFiBampqUyZMoUrr7yS7du3M2PG\nDFQqFUuXLkWn012I+oUQQpyjQ33q6enppKenN3ts8eLFntsKhYJHHnmERx55pHurE0IIcV5kRmlf\n5JJBjUIEKgl1IYQIIBLqQggRQCTUhRAigEioCyFEAJFQF0KIACKhLoQQAURCXQghAoiEuhBCBBAJ\ndSGECCAS6kIIEUAk1PsgWSRAiMAlod6HKFD4ugQhRA+TUBdCiAAioS6EEAGkQ6Gem5tLZmYmU6dO\nZeXKlS2e37BhAxMmTGD27NnMnj2btWvXdnuhQgghvPN6kQyHw8Hy5ctZvXo1BoOB+fPnk5GRQXJy\ncrN2M2bMYNmyZT1WqBBCCO+8Hqnn5eWRlJREQkICWq2WrKwscnJyLkRtQgghzpPXI3WTyYTRaPTc\nNxgM5OXltWj34YcfsnPnTgYPHswjjzxCfHx8u9vV6UJRq1WdKPksvT6iS6/vSf5YW5DFPfolKEjt\nl/WBf35u5/Ln+qS2zgm02jp0jVJvrrrqKmbOnIlWq+XNN9/koYce4pVXXmn3NRUV5i7tU6+PoKSk\npkvb6Cn+WluttQ4Ai8Xul/X56+fWxJ/rk9o6pzfW5i3ovXa/GAwGiouLPfdNJhMGg6FZG51Oh1ar\nBeD6669n7969HSpaCCFE9/Ia6mlpaeTn51NQUIDVaiU7O5uMjIxmbc6cOeO5vW3bNi666KLur1QI\nIYRXXrtf1Go1y5YtY+HChTgcDubNm0dKSgorVqwgNTWVKVOm8Oqrr7Jt2zZUKhVRUVE8+eSTF6J2\nIYQQP9GhPvX09HTS09ObPbZ48WLP7SVLlrBkyZLurUz0IFn9RYhAJTNK+xJZ+kWIgCeh3kHmA/sx\nH9jfoXZVu/d0y/Y6uk8hhGjSLUMa/VFTGIYOH9Et7crefadFO5fTictqxWmz4rLacNmslKx9iwq1\nktgbf3VOL8c53R0u9+2St98EpZL+v7kHZUgIyqAgFMrmv2Nb22dX3oMQIvD1ylA3H9hPVXEoGJPa\nbNNeIDqtVpxmMw5zHSVvvYHL6SBmxkyc5nqc9WYcZjPO+nqc9fXYSs5gKSrC1VAPwKE770ChUuFy\nOMDhaHXfFqDuT3/s0Hs5vvR+z21lcDDKkBBAgaPejKuhAYCjD9xHWOrFhCSnoI6OQh0VjSo6GlVY\nOAqlssPhbzl0iAEmK+g7VJoQohfqlaFe9u47VGvVGO5dgqO2FkdtDY6aGhy1NdQfPkztru+xl5UC\ncGTxb1FFRaFwunDUm3HW1eGy21tss/jfL3Ro3+poHarQEBQaLQqtFqVGg0KrRaHR4LLZqP3uWwAi\nJl6BKjz8bDe24myHtqOuhurt2wEITbsYhUKBs6HB/YukoR5nQwMum+1s+8pKqr/IpfqL3ObFKJXu\nP43v59iD/0P4JeMJS70YjV6PJrYfCvXZf+KaLVuZUFXH0dQOvVUhRC+kcLlcPhkK0ZlZXOYD+ynd\nsJaGY8fO74VKJarQMJRhoShDQlGFhaEKDcXlclH77U4AYmbNRhsfjyok1N0dEtrYNiSE8g/e82xK\noVAQe+2cVndTumkjAGFhQZjNVq/t2tte6aaN7u4dmw2XxUL4mLHYqyqxV1Zir6rCUVmJvaoSW1kp\njqqq1t+3QoFaF4MyLBRHVTWOane7Gn04Q+fdQvi4S1p0+YDvunP8eXYf+Hd9Ulvn9MbavM0o7VVH\n6qHDRxAzczan//EsAEFJg9D064cqPBxVRASq8AhUERHU7c5DoQ1CqdWi1GqInTsfhaLl0I/STRuJ\nmTUbcIdr5GUTWt1v0IABRIy/DICab79ps76mdnp9BMfea3vRs45s76dtwtIubrVd0y8Ip8WC02wm\ndMQIbGfOYCspwVZagq2kBGtBQbPXRJTUUvT8v1Co1ahj+6Hp1w9N49/q2Fgq3n8PhUZDwiO/a/Vz\nayJ9+UL4n14V6gANx48RM2t2u0fDCpWqWSC2FUwdDeumNj+93ZPtOrqtn76H1to6bVZK3n4LS20V\n+wt/REcoAwcMxVZair2sFPPe4havATi86HbU0Tq0Awai0fdD00/v/gXQT49Gr+9QX74EvxAXVq8L\n9Y4cDXd3CPuzjrwHpUZL6LBhhI9O5d3P/8jVlXFcdt1vPc87LRZsZaXYSktpOHqE8uzNAGiM8Tiq\nqzDvabkq57mO/s89hI5KJXTESLRxBjRxcagio1AoFOc1gsfbyW8hhHe9LtQDIYh9IWL8ZdTZ3Ctj\nlqTENXtOGRREUP8BBPUf4PkmBGf7+x1mM/ayUqwlJdhL3d06lsJC6g8dBMBRU0PNVzuo+WrH2Y1q\nNCgUSlxWCwDHH32IyCsmEX7xGNSxMShDQpt9g2o6+W2878Ge/BiECHi9LtRFz2qtS0oVGooqNJGg\nhERPu9JNGwkZNhxcLpyWBsJHj8V6xuTuzz9jcg8FPWd1T9sZE2Ub11O2cT3gHr6pjolFoQ3CXlGG\no6qKeqDhj79Hd00mEeMuQRkc0qI+6c4Ron0S6qKZzvblhw4f0SJoSzdtxGlpwFlXh7O+geDBg7GV\nl2EvK8NWXo69vAynufm6+tbCAkwvrcL00ioUQcGoo6Mb/+hQR0dT+/13KNRqDLfdgSYmFlVkpF+N\n4BHC1yTURad0JPw7chLXUV9P6fq1OOvNqB02Gqpr0RgM7iGbjX/qTS1P5BY88Sf3DZUKTUwM6phY\nNDGxqBtvV277GIVazcD7lqAMD2/zZLmEvwg0Euqix3Qk+FUhIYQOH97s5PdP27rsduxVVdQfPkTx\nKvckscifTcJptWAvL8NWVk79wQPUt7L9o/9zDyiV7qP9qGhUUe4Zuepo9+3KnI9QqDUdCn85kSt6\nAwl14XPewl+hVqOJjaXqi+IWJ3GbOG027JUV2MvKqD96xNN3HzJ8BC6rBXtlFQ0nT7S5tENT+Gti\n+6HW6VDrYlDrdO5vAboYyjZvojIkiPj7H0Khav3aunLUL/xBh0I9NzeXxx9/HKfTyfXXX8+iRYta\nbffBBx9w7733sm7dOtLS0rq1UNGNfDOJuMvam1eg1GjQ6uPQ6uMwHzzQavi7XC6cdXWembkN+cc9\n4R86fCSOhnrsFeXUHz7U6mdkAQ7feQfKkFA0/WJRRbmP/tVRUaiio6n6dBsKlZr+9yxGHRUt4S98\nwmuoOxwOli9fzurVqzEYDMyfP5+MjAySk5ObtautreWVV15h9OjRPVas6Jrevpx6Z0/iNlEoFO7Z\nx+HhBA0YSP2Rw62Hv93uDv7yCmwVZTTk51P54fvubScm4WxowHrmDK6fzNRtcnyp+4IxniP+xqN9\nTePt8q2bUag1JDz8WKsneZtI+IvO8BrqeXl5JCUlkZCQAEBWVhY5OTktQn3FihX8+te/5sUXX+yZ\nSoXooC6Hv1rtXjYhth8hpGAtKmp1FrOzocEd/lVVNBw7Rum6twD3Im2uhgZs5WU0nMiHY0db3f/h\nRbejDA9Hq49zj+7RNf5pvF2y/m0Uag2JMnFLnAevoW4ymTAajZ77BoOBvLzmMwz37t1LcXExP//5\nzzsc6jpdKGp1619PO8rbwja+5I+11VrdR4XaILVf1gcX9nPTT5/S6u2fUoxIpt8VPwOgdPuX9PPU\nGAEJ7nWMT548SsINv2h8gYLExtsupxNbZRWW0lKsZWXUHD7MqfXuWbZhFw3BXluLpeAkDcfbXqTu\n0K9vQ6OLJsRoRKOLRhutc/+ti0YTHU3FxrVUqdWkPfnnNrt8AM/FW6LSLvwynf768waBV1uXT5Q6\nnU7+8pe/nPfFpisqzN4btaM3rq7ma+bGGaVWi90v6/PXz42haZSU1KDXR+BqvP1T9uh+zY76m7dR\ng84IOiP1ew+16PJxuVw4amuwV1S4/1RW0HDyBNWffQqAxmDEWW+mev+Bds+HfHndL1CGR6DV691L\nRP9kjH/pxvUo1GoSHnr0gg7x9Nt/V3pnbV1epdFgMFB8zsxAk8mEwWDw3K+rq+PQoUP86le/AqCk\npIS77rqL5557Tk6Wij6jK10+CoUCdUQk6ohISHR3ofx0BdHYa+fgcjpx1NRgr6rEUV2FvaoKS8FJ\nKj/+CABtQiLOerPXI//Di25HFR2NNs5wttunMfylv7/38xrqaWlp5OfnU1BQgMFgIDs7m2eeecbz\nfEREBF9//bXn/s0338zSpUsl0IVoRZfCX6lEHRWFOirK064p/M/t73e5XDhraxsnbzUd+Z+k6hP3\nAngaoxFnbR31Bw+0uf/Di25HGRlJkDHePcwzNtazRLM6JpbSTRtRKBSyUJsf8hrqarWaZcuWsXDh\nQhwOB/PmzSMlJYUVK1aQmprKlClt90UKITrnfMP/3FVLFQqF+/oCEREENQ5wsLV25N80yqepy+dE\nPhXvbQXcR/2OmmrqDx/yLNzWmsO/vRNtfDza+P6oI6NQRUae/TsqitKN66kO1mL8n6Xtvl858u8+\nHepTT09PJz09vdljixcvbrXtq6++2vWqRI/qnaPURWu6dOR/zigfAMupUy2C32mzuUO/rNS9PHNZ\nGZaCk9T9sAsAl9OFJT8fS35+m/tuAKrvvAO1LgZtXFzz4G/829Pf//BjcmGWLpIZpX1Kbx+pLjqr\nM2v1QOOkrrg4tHFnl2su3bTRs2KnQqFAlzkdR3U19uoqd19/dTWO6mosRaeo/ca9HXVUNM7aGsyl\nJe3WefjXt6GKikZrMJwzvl+HOiYWtU7nDn+VSi7M0g4JdSEE0PmjfmVQEEq9+2pY52qtv99ptTYL\nfnt1FZbCQqq2fQyApv8AnHW1bc7qbXLovxeiiYsjKL6/+0RvlA61zn2yt2Td2yjUahIffqzd9xuo\n/f0S6kKI89KV/n6lVouynx5Nv7O/AFod6WO3u0/yVlRgqyjHXl6OpaCAmq/dF2JRhYVhM5mwnT7d\n5v4P/fq2c0b5RJ9d1K1xpE/J+rVUNa7n057eduQvoS6E6BFd7u9vDP+mS6X8NPxjZl7rHuJZWeEZ\n6dNQcJLqTz8BQGMw4Kxrf5SPBaj59W2oIqPQ6PXudXwio1BHRrpX9IyMouzdd8729/eCYZ4S6kII\nn+ps+Dcb4tnYg9LmUX91lWd9fkdlBQ2FhVTnfgqcndzVcPRIu10+7mUdItz9/Z6+/hjP+j6lG9ah\nUKs7NMwTei78JdSFEL1CZ0/2KtRqNI0XUWnS6vh+pxNHba1nYpejuoqGggLPYm7axEScdXU05B+H\no0farPPQnXeg1unQ6t0jfTxH/o2jfUrf2YAyKEhCXQghvOnS+H6lEnVkJOrISIIGusf3W8+0MbO3\nusp9Scam/v6TJ6nesR0AdbQOZ10d5tJ97dZa8Ncnib12TreHu4S6EKLP6fLM3mj3appwEdB6t4/T\nZsVRXeM+8q9pHOZZWOBZ1iHupl8R1H9At783CXUhhGhDV8JfqdGijI1FE9uy2weg9tudBF0roS6E\nEH6nq2v4d6e2x+eIgOWShQKE8ImOhn9XSKj3Ie0sqSGECBAS6kIIEUAk1IUQIoBIqAshRADpUKjn\n5uaSmZnJ1KlTWblyZYvn33jjDWbNmsXs2bP5r//6L44caXu2lRBCiJ7jNdQdDgfLly9n1apVZGdn\ns2XLlhahPWvWLDZv3symTZtYuHDheV+EWgghRPfwGup5eXkkJSWRkJCAVqslKyuLnJycZm3Cw8M9\nt+vr69u9cokQQoie43Xykclkwmg0eu4bDAby8vJatPvPf/7D6tWrsdlsvPzyy153rNOFolarzrPc\n5vT6iC69vif5Y21mq/ufO0ir9sv6wD8/t3P5c31SW+cEWm3dNqN0wYIFLFiwgM2bN/Pcc8/x1FNP\ntdu+osLcpf3p9RGUlNR0aRs9xV9rq7fXA2Cx2v2yPn/93Jr4c31SW+f0xtq8Bb3X7heDwUBxcbHn\nvslkwmAwtNk+KyuLjz/+2NtmhRBC9ACvoZ6WlkZ+fj4FBQVYrVays7PJyMho1ib/nCuJf/rppyQl\nBdY1/4QQorfw2v2iVqtZtmwZCxcuxOFwMG/ePFJSUlixYgWpqalMmTKF1157jR07dqBWq4mMjPTa\n9SJ8TdZ+ESJQdahPPT09nfT09GaPLV682HP7d7/7XfdWJXqIjEoSItDJjFIhhAggEupCCBFAJNSF\nECKASKgLIUQAkVAXQogAIqHeB7lkRKMQAUtCvQ+RAY1CBD4JdSGECCAS6kIIEUAk1IUQIoBIqAsh\nRACRUBdCiAAiod4nyZhGIQKVhHqfIoMahQh0EupCCBFAOhTqubm5ZGZmMnXqVFauXNni+dWrVzNj\nxgxmzZrFLbfcwqlTp7q9UCGEEN55DXWHw8Hy5ctZtWoV2dnZbNmyhSNHjjRrM2LECNavX8/mzZvJ\nzMzkb3/7W48VLIQQom1eQz0vL4+kpCQSEhLQarVkZWWRk5PTrM2ECRMICQkBYMyYMc0uVC2EEOLC\n8Xo5O5PJhNFo9Nw3GAzk5eW12X7dunVMnjzZ6451ulDUalUHy2ydXh/Rpdf3JH+srcGmAUCrVftl\nfeCfn9u5/Lk+qa1zAq22Dl2jtKM2bdrEnj17eO2117y2ragwd2lfen0EJSU1XdpGT/HX2hrsFgCs\nVrtf1ueMrnNwAAAW6UlEQVTLz83lclHXYKeyxkKV2YrT6cLlcqFQKIgM1RIVrmVIUizlZbU+qc8b\nf/2ZA6mts9qqzVvQew11g8HQrDvFZDJhMBhatPvyyy95/vnnee2119BqtR2pWfhIXx+l7nS5KDxT\ny+HCKk6Yaig4U0tRaR1Wu7Pd16mUCgb0CyPJGMHg+EhGDtIRpwu9QFUL0TFeQz0tLY38/HwKCgow\nGAxkZ2fzzDPPNGuzb98+li1bxqpVq4iNje2xYkXXKBR9d5x6VZ2VH4+Ukne0jIMnK6hrsHueU6sU\n9I8NIzYqmOiIIKJCtahUChQKBU6ni+o6K5V1VqrNVo6frubkmVo+zysCIE4XQtqQWMYP05MyMBql\nsu9+xsI/eA11tVrNsmXLWLhwIQ6Hg3nz5pGSksKKFStITU1lypQp/PWvf8VsNrN48WIA4uPjef75\n53u8eCHaU1Vn5Zt9Jr45YOLYqWrPN5R+UcGMSenHsAQdg+IjMMaEolZ5H92r10dQbKridKmZo6eq\n2H2sjH0nKsj5rpCc7wqJCtNyyTA9E0YauWhAZJ/+JSp8p0N96unp6aSnpzd7rCnAAdasWdOtRQnR\nWXaHkx8Ol5L742n25pfjcoFCAcMSoxmT3I/RKf0wdKHLRKVUkhAXTkJcOD8fOwC7w8nBgkq+PXCG\n7w6WsO37U2z7/hT9ooKZMMrIxFEG4mPDuvEdCtG+bj1RKoSvVNVZ2fZdIbk/nqaqzgrAkP6RTBhp\n4NIRBqLCeuY8j1qlZNSgGEYNiuGma4ayP7+CHXtNfH+ohC1f5rPly3wGGSOYOMrIZSN7rg4hmkio\ni16ttKqe978+yed5RdjsTkKC1Fx9yUB+PnYA/ftd2CNklVJJ6pBYUofEYrE62HW4hK/2mdhzrJz8\n4sO8te0IowbHMHGUgbFD9QRpujakV4jWSKiLXqnabGXzF/l8+sMpHE4X/aKCmXZ5IlekxftFWAZp\nVUwYZWTCKCPVdVa+3m/iq73F7D5Wxu5jZQRrVVw6PI4r0uJJGRgl/e+i20ioi17FZnfy4c6TZO84\nQYPVQZwuhGuvGMRlIwwdOtnpC5FhWqaOT2Dq+ASKyurYsbeYL/cU83leEZ/nFWGMCWXy6P78LM1I\nZKh0z4iukVDvg1y9dKT6wZMVvPLBQYrKzISHaLjx6iH8fOwAvw3z1sTHhnHd5IuYc+UQDp6o4PO8\nIr49WMLbnxxhQ+5RLhth4OrxAxlkjPR1qaKXklDvQ3rrF/x6i523th0h98fTKIAp4wYyd/JgQoM1\nvi6t05QKBSMGxTBiUAw31tv4ck8xn+w6xZd73EfxyQOimHZ5ImNS+qGUrhlxHiTUhV87XFjJvzfv\no7SqgYH6MG6ZNpyLBkT5uqxuFR6i4ZpLE7h6/ED2HS/n4+8KyTtaxj837CY+NpTplycxMdWAStl7\nvpEI35FQF37J4XSy6Yt8snfkAzDzZ0lce8XgXtXVcr6UCoVn9Myp0jre/+oEX+0z8dLW/WTvyGf2\npMFcNtIgR+6iXRLqwu9U1Fh4ftMeDhdW0S8qmIUzRzI0IdrXZV1QA/qFccfMkcy5cgjZX53g8x9P\ns3LzPrK/OsENGSmMGhzj6xKFn5JQF35lz/EyVr67j9p6G+OHx3HrtOGEBvfdH9PYqGB+lTmM6Zcn\n8u4Xx/lyTzHPvPUDY5L78cspyV2aHSsCU9/93yL8itPl4o0PD/LGBwdQqRQsmDqUjHEDZPx2I310\nCHfMHMnUSxN4/ePD/HCklD3Hy7j2isFMuzzR1+UJPyKhLnyursHGvzfvI+9oGbGRwfxmbiqD42VI\nX2sSDRE8dONYdh44wxs5h9mQe4xvD5xhyU3jidAG7vkG0XES6sKnCs7U8s8NeZRUNjB2qJ7bpg8n\nPKT3DlW8EBQKBZeNMDBqcAxv5Rzhi91F3P/3z7gufQiZlyXKidQ+TkK9L/KTuUc79hbz8nsHsNqd\nzPxZEgvnjvbbKwv5o7BgDbdnjeCyEXGsfu8Aaz85yv4TFSzMGkmkLBzWZ8n3tT7FP47g7A4nr390\niH9v3odKpeCeeWlcN/kiVHKBiU5JHRLLP5ZcReqQGPYcK+cPL33DoYJKX5clfKRDoZ6bm0tmZiZT\np05l5cqVLZ7fuXMnc+fOZeTIkbz//vvdXqQIHJW1Fv72xi4+/q6QAf3C+P0tlzI2Re/rsnq96Igg\n7rt+NL+4Kpkas42/vbGLnO8Kcbn85GuZuGC8hrrD4WD58uWsWrWK7OxstmzZwpEjR5q1iY+P58kn\nn2TmzJk9Vqjo/Q4XVvJ/1uzkcGEVlw6P47FfXYIxRobkdRelQsG0yxN54IYxhAar+c9Hh3gpez9W\nm8PXpYkLyGufel5eHklJSSQkJACQlZVFTk4OycnJnjYDBw4EQCnTmHuFC72gl8vlYtv3p3gz5zAu\nF/wyI5lrLk2Q4Yo9ZHiSjj/cein/3LCb7XuKOVVax93XpRETGezr0sQF4DWFTSYTRqPRc99gMGAy\nmXq0KNEzfBGhFpuDVVv28Z+PDhEWrOaBG8aQeVmiBHoPi4kM5pGbxnFFqpH84hqWr9kp/ex9hM9G\nv+h0oajVXbuYgV4f0U3VdD9/rM3qsAGg1aovSH1FpXU89fq35BdVMyxJx8O/upR+0SHtvsYfP7dz\n+XN9rdX20K2XseWL46x6dw9/e2MXt84cyezJF13wX6q97XPzF52pzWuoGwwGiouLPfdNJhMGg+G8\nd/RTFRXmLr1er4+gpKSmy3X0BH+tzdYY6larvcfryztaysp392G22Llq7AD+6+oUXLb29+uvn1sT\nf66vvdomDNejCx3D85v28uK7e/l+v4nbs0YQdoGWLu6tn5uvtVWbt6D32v2SlpZGfn4+BQUFWK1W\nsrOzycjI6HylIqA5XS42fXGcFWvzsDmc3JE1gpszhwX06oq9wbBEHX+87VKGJ0az63Apf3xpJ/vy\ny31dlugBXv+nqdVqli1bxsKFC5kxYwbTp08nJSWFFStWkJOTA7hPpk6ePJn333+fP/zhD2RlZfV4\n4aITevgrd12DjX+sy2PTF8eJiQzm0Zsu4Yq0+B7dp+i4qPAgHrhhLNdeMYiKGgtPv/kDa97bj7nB\n7uvSRDfqUJ96eno66enpzR5bvHix5/bFF19Mbm5u91YmepWCM7X8a8NuzlTWM2qQjjtnp8p0fz+k\nVCqYc+UQxqboeTF7P7k/FvHj0TLmTBrMpIvj5UIcAUCWCRBd9uWeIl55/yBWu5OsiUnMvXIISpkd\n6teSjBEsu3U8W786wdYdJ3j5/YN8uLOAuVcOYdxQvfz79WIS6n1Qd80ytNmdvJFzmE93nSIkSMXd\n16YxbqjMDu0t1Col114xmCsv7s+724/z+Y9F/L939hAXHcKU8QOZlBZPSJBERG8j/2J9SHcee52p\nMPP8pr3kF9cwUB/Ob69LlQs29FK6iCBumTacay5N4INvTvLlHhNvfOxe1vfS4XFceXE8yQOiZG5B\nLyGhLs7bV3uLeeWDgzRYHVyRZuSma4YRpOnanAPhe/GxYdw6fQTXpV/EZ7tOkfvjab7IK+KLvCIM\nuhB+lmpk4iij17kGwrck1EWHmRvsvJFziO27iwnSqvj1zJFMTDV6f6HoVSJDtcy6YjBZPxvE/hMV\nbM8r4rtDJWz8/DgbPz/O8MRoJl0czyXD4uSXuR+SUBcdsvtYGWveO0BFjYUkYwT/fe0oDLIYV0BT\nKhSMGhTDqEEx1FvsfHvgDF/uKebAyUoOnKzkPx8dYsJII1eNHcDAuHBflysaSaj3IYpO9KpXm62s\n++QoX+wuQqVUMHvSYLImJslkoj4mJEjNlaP7c+Xo/pypMPPF7iK27y7mk12n+GTXKYYOjCLjkoGM\nG6qXnw0fk1AXrbI7nGz7/hSbvjhOvcVOYlw4t2eNINHgv+tkiAsjThfKdZMvYvakweQdKWPbrlPs\nPV7OocIqdBFBZIwbQPqYATJPwUck1EUzTqeLb/abeHd7PsXlZkKD1Nx4dQpXjRsgE1NEMyqlkrFD\n9Ywdqqe43EzOd4V8sbuI9Z8dY/P2fCamGpk6PsGvF8wKRBLqfVBr66nb7E6+2W8ie8cJisvNKBUK\nfj6mP3MnDyEiVK53KdpnjAllwdShzL1yCF/knebj7wr57IfTfPbDacYO1XPlxfFcfFGsXBT7ApBQ\n7+NKK+v59IfTfJ53mhqzDZVSweTR8WRNHIRehq6J8xQarOaayxK5enwCuw6X8tHOk+w6VMKuQyXE\nRYdw1bgBXJEWL10zPUhCvQ9yOJx88n0hX+0zcbiwCoCwYDXTLkskY9wAGYcsukypVHDJMD2XDNNT\nY3Wy9uODfL3PxFvbjrD+s6OMHxbH5NH9GZoYLUfv3UxCvQ9wuVycLq3jhyMlABwsrGT3gUMogOGJ\n0fwsNZ7LRsShlTHHogcMGRDF7TNG8Iurktm+u4jPfjjNV/tMfLXPRGxkEBNGGZkw0kD/fmEya7Ub\nSKgHIJfLRXG5mcOFVRw4WcH+/Aqq6qyAi5DLIDRIzZyrkrl8pAFdRJCvyxV9RHiIhszLErnm0gQO\nFVSyfU8x3x44Q/aOE2TvOIExJpRLhukZN1RPkjFCjuA7SUK9l3O5XJRXWzhpquGEqYb84hqOna6m\ntt7maRMZpmXCSAMjBkXzZukHJBkimDYu0YdVi75MoVAwLFHHsEQdC6YO5YfDpXx74Ay7j5V5Aj48\nREPq4BhGDNIxNCGauOgQOYrvIAn1XqLeYqe0qoEzFfWYKsyYys2cLqvjdGkd9RZHs7axkcGkDo4h\neWAUQxOiGdD4tdbpcvLmJ62PfhHCF4I0Ki4faeDykQYsVge7j5WRd6yMPcfKPF00AFHhWpL7R5Fo\njGCQMYKB+nCiw7US9K3oUKjn5uby+OOP43Q6uf7661m0aFGz561WK0uXLmXv3r1ER0fz7LPPMnDg\nwB4pONC4XC4arA6q6qxU1lioqLVQWWOhvMZCeXUD5dUWyqobmh15N1EpFRhiQhk1OIyEuHAGGSNI\nMkQQGdb6EMSmGaUS6sIfBWlVjB8ex/jhcbhcLk6V1HHgZAWHCqs4XFDJd4dK+O5Qiad9SJCa+NhQ\nDLoQYqNC0EcFExMZTFS4lujwIMKC1X0y9L2GusPhYPny5axevRqDwcD8+fPJyMggOTnZ02bt2rVE\nRkby0UcfkZ2dzdNPP83f//73Hiu6rsGGttZCtdnKufnkAnC5I8vlOrtuuNPlwtl43+lsvO10NT7u\nwulsbON0uds0tm3aRtP2mjv7gLudu63D6SK0oIqKSjM2hxOrzYnV5qDB6qDeYsdssVPXYKPWbKO2\n3kZ1nRWr3dnme9WqlcREBjMoPgJ9VAj66BAMMSEYdKHE6ULOa0p20w94Ny2nLkSPUSgUDIwLZ2Bc\nOFePT8DlclFRY+GEqYYTxTWcKq2jqMzMicbuxtaolArCQzSEh2oIC9YQFqwmNEhNSJCa4CAVIVo1\nsTFhWBtsaDVKtBoVGrUSjUqJWqVEpVSgUilQKRUolQqUCvcfhcJdn0LRuJy14uwCHMrGffqS11DP\ny8sjKSmJhIQEALKyssjJyWkW6tu2bePuu+8GIDMzk+XLl+NyuXrkt+S27wt57cND3b7dC02jVhIR\nqiE+NoyocC1RYVqiwoPQRQQRHa4lJiKYmMggwkM03fo5juufRnyQrKwoeheFQkFMpPtIfGzK2Qux\nOJxOKqotlFQ1UFpZ7/6mW+v+1ltTb6XGbKO82sKpkroLVusvrkpm2uW+O2flNdRNJhNG49kQMBgM\n5OXltWgTH+++wLBarSYiIoKKigpiYmLa3G5npw7/MnMEv8wc0anXCnhY/xtfl9Auf59S7s/19dXa\njAYI1ETozOcmi3kIIUQA8RrqBoOB4uJiz32TyYTBYGjRpqioCAC73U5NTQ06na6bSxVCCOGN11BP\nS0sjPz+fgoICrFYr2dnZZGRkNGuTkZHBxo0bAfjggw+YMGFCnzzrLIQQvqZwdeDS8p999hlPPPEE\nDoeDefPmcdddd7FixQpSU1OZMmUKFouFBx98kP379xMVFcWzzz7rObEqhBDiwulQqAshhOgd5ESp\nEEIEEAl1IYQIIL0+1F966SWGDRtGeXm5r0tp5qmnnmLatGnMmjWL3/72t1RXtz7r7ULKzc0lMzOT\nqVOnsnLlSl+X41FUVMTNN9/MjBkzyMrK4uWXX/Z1SS04HA7mzJnDnXfe6etSmqmurubee+9l2rRp\nTJ8+nV27dvm6JI81a9aQlZXFzJkzuf/++7FYLD6t55FHHmHixInMnDnT81hlZSW33XYb11xzDbfd\ndhtVVVV+U1tnM6RXh3pRURHbt2+nf//+vi6lhSuuuIItW7awefNmBg0axAsvvODTepqWe1i1ahXZ\n2dls2bKFI0eO+LSmJiqViocffpitW7fy1ltv8frrr/tNbU1eeeUVLrroIl+X0cLjjz/OlVdeyfvv\nv8+mTZv8pkaTycQrr7zC+vXr2bJlCw6Hg+zsbJ/WdN1117Fq1apmj61cuZKJEyfy4YcfMnHiRJ8d\n7LRWW2czpFeH+pNPPsmDDz7ol8MnJ02ahFrtnrA7ZsyYZmP9feHc5R60Wq1nuQd/EBcXx6hRowAI\nDw9nyJAhmEwmH1d1VnFxMZ9++inz58/3dSnN1NTUsHPnTk9dWq2WyMhIH1d1lsPhoKGhAbvdTkND\nA3FxcT6t59JLLyUqKqrZYzk5OcyZMweAOXPm8PHHH/uitFZr62yG9NpQ//jjj4mLi2P48OG+LsWr\n9evXM3nyZJ/W0NpyD/4UnE0KCwvZv38/o0eP9nUpHk888QQPPvggSqV//XcpLCwkJiaGRx55hDlz\n5vDYY49hNpt9XRbg/vm6/fbbueqqq5g0aRLh4eFMmjTJ12W1UFZW5vllo9frKSsr83FFrTufDPHr\n9dRvvfVWSktLWzx+33338cILL/DSSy/5oKqz2qvv6quvBuC5555DpVJx7bXXXujyep26ujruvfde\nHn30UcLDw31dDgCffPIJMTExpKam8vXXX/u6nGbsdjv79u3j97//PaNHj+bPf/4zK1eu5L777vN1\naVRVVZGTk0NOTg4REREsXryYTZs2MXv2bF+X1ib3yov+963/fDPEr0N9zZo1rT5+8OBBCgsLPT8g\nxcXFXHfddaxduxa9Xt/qay5kfU02bNjAp59+ypo1a3z+w9KR5R58yWazce+99zJr1iyuueYaX5fj\n8f3337Nt2zZyc3OxWCzU1tbywAMP8PTTT/u6NIxGI0aj0fOtZtq0aX5zAvzLL79k4MCBnkX9rrnm\nGnbt2uV3oR4bG8uZM2eIi4vjzJkz7S5C6AudyRD/+j7ZQcOGDWPHjh1s27aNbdu2YTQa2bBhwwUN\ndG9yc3NZtWoVzz33HCEhIb4up0PLPfiKy+XiscceY8iQIdx2222+LqeZJUuWkJuby7Zt2/jf//1f\nJkyY4BeBDu7uAqPRyLFjxwDYsWOH35wo7d+/Pz/++CP19fW4XC6/qu1cGRkZvPPOOwC88847TJky\nxccVndXZDAmIGaUZGRmsW7fOr37LTp06FavVSnR0NACjR49m+fLlPq2pteUe/MG3337LggULGDp0\nqKff+v777yc9Pd3HlTX39ddf89JLL/l8JNO59u/fz2OPPYbNZiMhIYEnn3yyxQk3X/nHP/7B1q1b\nUavVjBgxgscffxyttvWrcl0I999/P9988w0VFRXExsZyzz33cPXVV3PfffdRVFRE//79+fvf/+75\nP+vr2lauXNmpDAmIUBdCCOHWK7tfhBBCtE5CXQghAoiEuhBCBBAJdSGECCAS6kIIEUAk1IUQIoBI\nqAshRAD5/7SRl8r1gpLJAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc0cc6edfd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iter-2000;D_loss:[ 1.19764173];G_loss:[ 0.65059602]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc0681b6dd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iter-4000;D_loss:[ 1.37416601];G_loss:[ 0.7786904]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nsv1nS5cutb355ps2m81me/PNN20vvviio8LrVW3lwt3rRXuky8UJnD+9glartU+vINzThAkTWp19\nb968mVtuuQWAW265hW+++cYRofW6tnIhLsxpCvr777/PrFmzePbZZ6msrHR0OL2qrekVDAaDAyNy\nvIcffphbb72Vjz/+2NGhOIWysjLCw5vmaQkLC6OsrMzBETmWO9eL9vRaH/oDDzxAaWlpq58/8cQT\n3HnnnTz66KMoikJqaiovvPACzz//fG+FJpzMhx9+iF6vp6ysjAcffJDBgwczYcIER4flNBSl9YyG\n7kTqxYX1WkF/++23O9Vu/vz5/OpXv+rZYJxMZ6ZXcCfn/vaQkBCmTZtGRkaG2xf0kJAQiouLCQ8P\np7i4uN2J71xdaGio/bE71ov2OEWXS3Fxsf3xN998Q1xcnAOj6X2dmV7BXdTV1VFTU2N/vG3bNrc7\nHtqSmJjI2rVrAVi7di1Tp051cESO4+71oj1OcafoM888w5EjRwCIiooiJSXF3l/oLtqaXsEd5eXl\n8etf/xpoWlxl5syZbpeLp556il27dlFRUUFISAiPP/44N9xwA0888QSFhYX069ePV199lcDAQEeH\n2uPaysWuXbvcvl5ciFMUdCGEEF3nFF0uQgghuk4KuhBCuAgp6EII4SKkoAshhIuQgi6EEC5CCroQ\nQrgIKehCCOEi/j9LyhdDBs6+xQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc06804bf10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iter-6000;D_loss:[ 1.38086498];G_loss:[ 0.71804935]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n0IUQwkP8f9x+IHzEuyP2AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc06822f890>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iter-8000;D_loss:[ 1.36550725];G_loss:[ 0.71106076]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nIwo0GQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc063c74fd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for it in range(10000):\n",
    "    n_dist = Variable(torch.randn(batch_size)*sigma+mu)\n",
    "    n_dist = torch.unsqueeze(n_dist,1)\n",
    "    u_dist = torch.rand(batch_size, sample_dim)*sigma*2-sigma\n",
    "    u_dist = Variable(u_dist)\n",
    "    \n",
    "    if GPU:\n",
    "        n_dist = n_dist.cuda()\n",
    "        u_dist = u_dist.cuda()\n",
    "        \n",
    "    G_sample = generator(u_dist)\n",
    "    D_real = discriminator(n_dist)\n",
    "    D_fake = discriminator(G_sample)\n",
    "    \n",
    "    D_loss_real = F.binary_cross_entropy(D_real, ones_label)\n",
    "    D_loss_fake = F.binary_cross_entropy(D_fake, zeros_label)\n",
    "    D_loss = D_loss_real + D_loss_fake\n",
    "    D_loss.backward()\n",
    "    D_solver.step()\n",
    "    \n",
    "    reset_grad()\n",
    "    \n",
    "    \n",
    "    u_dist = torch.rand(batch_size, sample_dim)*sigma*2-sigma\n",
    "    u_dist = Variable(u_dist)\n",
    "    \n",
    "    if GPU:\n",
    "        u_dist = u_dist.cuda()\n",
    "        \n",
    "    G_sample = generator(u_dist)\n",
    "    D_fake = discriminator(G_sample)\n",
    "    \n",
    "    G_loss = F.binary_cross_entropy(D_fake, ones_label)\n",
    "    \n",
    "    G_loss.backward()\n",
    "    G_solver.step()\n",
    "    \n",
    "    reset_grad()\n",
    "    \n",
    "    if it% 2000 == 0:\n",
    "        if GPU:\n",
    "            print 'Iter-{};D_loss:{};G_loss:{}'.format(it,D_loss.data.cpu().numpy(),G_loss.data.cpu().numpy())\n",
    "        else:\n",
    "            print 'Iter-{};D_loss:{};G_loss:{}'.format(it,D_loss.data.numpy(),G_loss.data.numpy())\n",
    "        plot_states(discriminator,generator)\n",
    "    \n",
    "    \n",
    "    \n",
    "    \n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:deeplearning2]",
   "language": "python",
   "name": "conda-env-deeplearning2-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
